


//引用db模块
var mongodb=require('./db');
markdown=require('markdown').markdown;

function Stra(name,title,area,days,hotel,tourist,food,routs){
	this.name=name;
	this.title=title;
	this.area=area;
	this.days=days;
	this.hotel=hotel;
	this.tourist=tourist;
	this.food=food;
	this.routs=routs;
	
}
//创建post接口 可对外被引用
module.exports= Stra;

//存储一篇文章和相关信息

Stra.prototype.save =function(callback){
	var date=new Date();
	var time ={
		date:date,
		year:date.getFullYear(),
		month:date.getFullYear()+"-"+(date.getMonth()+1),
		day:date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate(),
		minute:date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+""+date.getHours()+":"+(date.getMinutes()<10?'0'+date.getMinutes():date.getMinutes())
	}

//要存入数据库的文档
 var post= {
 	name:this.name,
 	time:time,
 	title:this.title,
 	area:this.area,
 	days:this.days,
	hotel:this.hotel,
	tourist:this.tourist,
	food:this.food,
	routs:this.routs
 	
 };

//打开db  插入文章 
mongodb.open(function(err,db){
	 if(err){
	 	return callback(err);
	 }
	//读取posts集合
	db.collection('stras',function(err,collection){
		if(err){
			mongodb.close();
			return callback(err);
		}
		//将文档插入posts集合
		collection.insert(post,{
			safe:true
		},function(err){
			mongodb.close();
			if(err){
				return callback(err);//如果失败  返回err
			}
			callback(null);//成功 返回的err为null
		});
	});
});
};

//读取文章 和相关信息
Stra.getAlls=function(name,callback){
	console.log("我是name"+name);
	mongodb.open(function(err,db){
		if(err){
			return  callback(err);
		}
		db.collection('stras',function(err,collection){
			if(err){
				mongodb.close();
				return callback(err);
			}
			var query ={};
			if(name){
				query.name=name;
			}
			console.log("我是新的"+name);
			//跟进query对象来查询文章
			collection.find(query).sort({
				time:-1
			}).toArray(function(err,docs){
				console.log("我是"+docs);
				mongodb.close();
				/*console.log("我是3300");*/
				if(err){
					return callback(err);
				}
				
			docs.forEach(function(doc){
					
					doc.tourist = markdown.toHTML(doc.tourist);
					doc.food = markdown.toHTML(doc.food);
					doc.routs = markdown.toHTML(doc.routs);
					/*console.log("我是"+area);*/
				});
				callback(null,docs);//成功，以数组的形式返回查询结果
			});
		});
	});
};
	//获取一篇文章
	Stra.getOnes= function(name,day,title,callback){
		mongodb.open(function(err,db){
			if(err){
				return callback(err);
			}
			
			db.collection('stras',function(err,collection){
				
				if(err){
					mongodb.close();
					return callback(err);
				}
				collection.findOne({
					"name":name,
					"time.day":day,
					"title":title
				},function(err,doc){
					console.log("我是"+doc.stra);
					mongodb.close();
					if(err){
						return callback(err);
					}
				
					doc.routs = markdown.toHTML(doc.routs);
					callback(null,doc);
				});
			});
		});
	};
	Stra.searchname=function(areas,times,callback){
		var pattern=new RegExp(areas,"i");
				var times=new RegExp(times,"i");
		
		mongodb.open(function(err,db){
			if(err){
				return callback(err);
			}
			db.collection('stras',function(err,collection){
				if(err){
					mongodb.close();
					return callback(err);
				}
				
				collection.find({
					"area":pattern,
					"days":times
				},{
					"title":1,
		
					"area":1,
					"days":1,
					"routs":1
				}).sort({
					"time":-1
				}).toArray(function(err,docs){
					mongodb.close();
					if(err){
						return callback(err);
					}
					callback(null,docs);
				});
			});
		});
	};

